package com.itlong.cloud.iot.service.base;

import com.alibaba.fastjson.JSONObject;
import com.itlong.cloud.POJO.PO.ProductTypePO;
import com.itlong.cloud.POJO.VO.property.CloudControllerVO;

import java.util.List;

/**
 * <desc>
 *      IOT公共业务处理接口
 * </desc>
 *
 * @createDate  2020/01/02
 */
public interface IotBaseService{

    /**
     * <desc>
     *     注册设备
     * </desc>
     *
     * @param productKey
     * @param deviceUnique,等同设备名称，产品内唯一，由用户自定义，自身业务只有设备唯一码唯一
     * @return
     * @throws Exception
     * @author Jiaqi.X
     * @createDate 2018/03/17
     */
    public boolean registDevice(String productKey, String deviceUnique, String deviceType) throws Exception ;


    /**
     * <desc>
     *     批量获取同一个产品型号下的设备工作状态
     * </desc>
     *
     * @param productKey
     * @param deviceUniques 设备序列号 多个,号分隔
     * @return
     * @author Jiaqi.X
     * @createDate  2018/03/17
     */
    public String batchGetDeviceState(String productKey, String deviceUniques);

    /**
     * <desc>
     *     批量获取同一个产品型号下的设备工作状态并保存到缓存中
     * </desc>
     *
     * @param productKey
     * @param deviceUniques 设备序列号 多个,号分隔
     * @param type 设备型号:1云对讲,2云电梯,3云门禁,4群控器,5联动器,6平板,7一卡通
     * @return
     * @author Qiang.S
     * @createDate  2019/07/04
     */
    public void batchGetDeviceStateForOnline(String productKey, List<CloudControllerVO> deviceUniques, String type);


    /**
     * <desc>
     *      发布消息
     * </desc>
     *
     * @param productKey  产品key
     * @param topic  设备topic地址
     * @param msg 消息内容
     * @author Jiaqi.X
     * @createDate 2018/04/11
     */
    public void pubDeviceMessage(String productKey, String topic, String msg, String huaweiMsg, String serviceId, String commandName, String iotFlag);
}
